home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Present…nuary (Partner) - Disc 1 / The Apple Reference and Presentations Library (Disc 1)(January 1994).iso / Frame Technology / US English / FrameMaker 4-68K / System Extras / PS Printer 8.1.1 / Printer Descriptions / LaserWriter next >
PostScript Printer Description  |  1993-07-26  |  11KB  |  347 lines

  1. *PPD-Adobe: "4.0"
  2. *% Adobe Systems PostScript(R) Printer Description File
  3. *% Copyright 1987-1993 Adobe Systems Incorporated. 
  4. *% All Rights Reserved. 
  5. *% Permission is granted for redistribution of this file as
  6. *% long as this copyright notice is intact and the contents
  7. *% of the file is not altered in any way from its original form.
  8. *% End of Copyright statement
  9. *FormatVersion: "4.0"
  10. *FileVersion: "3.2"
  11. *PCFileName: "APPLE230.PPD"
  12. *LanguageVersion: English
  13. *Product: "(LaserWriter)"
  14. *PSVersion: "(23.0) 0"
  15. *ModelName: "Apple LaserWriter"
  16. *NickName: "Apple LaserWriter v23.0"
  17.  
  18. *% General Information and Defaults ===============
  19. *ColorDevice: False
  20. *DefaultColorSpace: Gray
  21. *FreeVM: "173936"
  22. *LanguageLevel: "1"
  23. *VariablePaperSize: False
  24. *FileSystem: False
  25. *Throughput: "8"
  26. *Password: "0"
  27. *ExitServer: "
  28.   count 0 eq {  % is the password on the stack?
  29.     true
  30.   }{
  31.     dup    % potential password
  32.     statusdict /checkpassword get exec not
  33.   } ifelse
  34.   {  %  if no password or not valid
  35.     (WARNING : Cannot perform the exitserver command.) =
  36.     (Password supplied is not valid.) =
  37.     (Please contact the author of this software.) = flush
  38.     quit
  39.   } if
  40.   serverdict /exitserver get exec
  41. "
  42. *End
  43.  
  44. *Reset: "
  45.   count 0 eq {  % is the password on the stack?
  46.     true
  47.   }{
  48.     dup    % potential password
  49.     statusdict /checkpassword get exec not
  50.   } ifelse
  51.   {  %  if no password or not valid
  52.     (WARNING : Cannot reset printer.) =
  53.     (Password supplied is not valid.) =
  54.     (Please contact the author of this software.) = flush
  55.     quit
  56.   } if
  57.   serverdict /exitserver get exec
  58.   systemdict /quit get exec
  59.   (WARNING : Printer Reset Failed.) = flush
  60. "
  61. *End
  62.  
  63. *DefaultResolution: 300dpi
  64. *?Resolution: "
  65. save
  66.   initgraphics
  67.   0 0 moveto currentpoint matrix defaultmatrix transform
  68.   0 72 lineto currentpoint matrix defaultmatrix transform
  69.   3 -1 roll sub dup mul
  70.   3 1 roll exch sub dup mul
  71.   add sqrt round cvi
  72.   (          ) cvs print (dpi) = flush
  73. restore
  74. "
  75. *End
  76.  
  77. *% Halftone Information ===============
  78. *ScreenFreq: "60.0"
  79. *ScreenAngle: "45.0"
  80. *DefaultScreenProc: Dot
  81. *ScreenProc Dot: "
  82. {dup mul exch dup mul add 1.0 exch sub }
  83. "
  84. *End
  85. *ScreenProc Line: "{ pop }"
  86. *ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
  87.  
  88. *DefaultTransfer: Null
  89. *Transfer Null: "{ }"
  90. *Transfer Null.Inverse: "{ 1 exch sub }"
  91.  
  92. *% Paper Handling ===================
  93. *% Use these entries to set paper size most of the time, unless there is
  94. *% specific reason to use PageRegion.
  95. *OpenUI *PageSize: PickOne
  96. *OrderDependency: 30 AnySetup *PageSize
  97. *DefaultPageSize: Letter
  98. *PageSize Letter/US Letter: "letter"
  99. *PageSize Legal/US Legal: "legal"
  100. *PageSize LetterSmall/US Letter Small: "lettersmall"
  101. *PageSize LegalSmall/US Legal Small: "legal"
  102. *PageSize Monarch/Monarch Envelope Edge Fed: "letter"
  103. *PageSize Com10/Com10 Envelope Edge Fed: "letter"
  104. *?PageSize: "
  105. save
  106.   [(Letter)(Legal)] statusdict /pagetype get exec
  107.   {get} stopped { pop pop (Unknown)} if = flush
  108. restore
  109. "
  110. *End
  111. *CloseUI: *PageSize
  112.  
  113. *% These entries will set up the frame buffer. Usually used with manual feed.
  114. *OpenUI *PageRegion: PickOne
  115. *OrderDependency: 40 AnySetup *PageRegion
  116. *DefaultPageRegion: Letter
  117. *PageRegion Letter/US Letter: "letter"
  118. *PageRegion Legal/US Legal: "legal"
  119. *PageRegion LetterSmall/US Letter Small: "lettersmall"
  120. *PageRegion LegalSmall/US Legal Small: "legal"
  121. *PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
  122. *PageRegion Com10/Com10 Envelope Edge Fed: "letter"
  123. *CloseUI: *PageRegion
  124.  
  125. *% The following entries provide information about specific paper keywords.
  126. *DefaultImageableArea: Letter
  127. *ImageableArea Letter/US Letter: "18 8 593 784 "
  128. *ImageableArea Legal/US Legal: "65 37 547 972 "
  129. *ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
  130. *ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
  131. *ImageableArea Monarch/Monarch Envelope Edge Fed: "19 269 274 773 "
  132. *ImageableArea Com10/Com10 Envelope Edge Fed: "19 125 292 773 "
  133. *?ImageableArea: "
  134. save
  135.   /cvp {(                ) cvs print ( ) print } bind def
  136.   /upperright {10000 mul floor 10000 div} bind def
  137.   /lowerleft {10000 mul ceiling 10000 div} bind def
  138.   newpath clippath pathbbox
  139.   4 -2 roll exch 2 {lowerleft cvp} repeat
  140.   exch 2 {upperright cvp} repeat flush
  141.  restore
  142. "
  143. *End
  144.  
  145. *% These provide the physical dimensions of the paper (by keyword)
  146. *DefaultPaperDimension: Letter
  147. *PaperDimension Letter/US Letter: "612 792"
  148. *PaperDimension Legal/US Legal: "612 1008"
  149. *PaperDimension LetterSmall/US Letter Small: "612 792"
  150. *PaperDimension LegalSmall/US Legal Small: "612 1008"
  151. *PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
  152. *PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
  153.  
  154. *RequiresPageRegion All: True
  155. *OpenUI *InputSlot: PickOne
  156. *OrderDependency: 20 AnySetup *InputSlot
  157. *DefaultInputSlot: Cassette
  158. *InputSlot Cassette: ""
  159. *CloseUI: *InputSlot
  160.  
  161. *OpenUI *ManualFeed/Manual Feed: Boolean
  162. *OrderDependency: 20 AnySetup *ManualFeed
  163. *DefaultManualFeed: False
  164. *ManualFeed True: "statusdict /manualfeed true put"
  165. *ManualFeed False: "statusdict /manualfeed false put"
  166. *?ManualFeed: "
  167. save
  168.  statusdict /manualfeed get {(True)}{(False)}ifelse = flush
  169. restore
  170. "
  171. *End
  172. *CloseUI: *ManualFeed
  173.  
  174. *DefaultOutputOrder: Reverse
  175.  
  176. *% Font Information =====================
  177. *DefaultFont: Courier
  178. *Font Courier-Bold: Standard "(001.000)" Standard ROM
  179. *Font Courier-BoldOblique: Standard "(001.000)" Standard ROM
  180. *Font Courier-Oblique: Standard "(001.000)" Standard ROM
  181. *Font Helvetica: Standard "(001.001)" Standard ROM
  182. *Font Helvetica-Bold: Standard "(001.001)" Standard ROM
  183. *Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM
  184. *Font Helvetica-Oblique: Standard "(001.000)" Standard ROM
  185. *Font Symbol: Special "(001.001)" Special ROM
  186. *Font Times-Bold: Standard "(001.001)" Standard ROM
  187. *Font Times-BoldItalic: Standard "(001.001)" Standard ROM
  188. *Font Times-Italic: Standard "(001.001)" Standard ROM
  189. *Font Times-Roman: Standard "(001.000)" Standard ROM
  190. *?FontQuery: "
  191. save
  192.  /str 100 string dup 0 (fonts/) putinterval def
  193.  {
  194.    count 1 gt
  195.    {
  196.      exch dup str 6 94 getinterval cvs
  197.      (/) print print (:) print
  198.      FontDirectory exch known
  199.      {(Yes)}{(No)} ifelse =
  200.    }
  201.    {exit} ifelse
  202.  }bind loop
  203.  (*) = flush
  204. restore
  205. "
  206. *End
  207.  
  208. *?FontList: "
  209. save
  210.   FontDirectory { pop == } bind flush forall (*) = flush
  211. restore
  212. "
  213. *End
  214.  
  215. *% Printer Messages (verbatim from printer):
  216. *Message: "%%[ exitserver: permanent state may be changed ]%%"
  217. *Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%"
  218. *Message: "\FontName\ not found, using Courier"
  219.  
  220. *% Status (format: %%[ status: <one of these> ]%% )
  221. *Status: "idle"
  222. *Status: "busy"
  223. *Status: "waiting"
  224. *Status: "printing"
  225. *Status: "PrinterError: timeout, clearing printer"
  226. *Status: "PrinterError: timeout"
  227. *Status: "PrinterError: paper entry misfeed"
  228. *Status: "PrinterError: no toner cartridge"
  229. *Status: "PrinterError: service call"
  230. *Status: "PrinterError: paper entry misfeed"
  231. *Status: "PrinterError: no paper tray"
  232. *Status: "PrinterError: out of paper"
  233. *Status: "PrinterError: cover open"
  234. *Status: "PrinterError: resetting printer"
  235. *Status: "PrinterError: manual feed timeout"
  236. *Status: "PrinterError: warming up"
  237.  
  238. *% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
  239. *Source: "serial9"
  240. *Source: "serial25"
  241. *Source: "AppleTalk"
  242.  
  243. *% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
  244. *PrinterError: "timeout, clearing printer"
  245. *PrinterError: "timeout"
  246. *PrinterError: "paper entry misfeed"
  247. *PrinterError: "no toner cartridge"
  248. *PrinterError: "service call"
  249. *PrinterError: "paper entry misfeed"
  250. *PrinterError: "no paper tray"
  251. *PrinterError: "out of paper"
  252. *PrinterError: "cover open"
  253. *PrinterError: "resetting printer"
  254. *PrinterError: "manual feed timeout"
  255. *PrinterError: "warming up"
  256.  
  257. *%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
  258.  
  259. *% Color Separation Information =====================
  260.  
  261. *DefaultColorSep: ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi
  262.  
  263. *InkName: ProcessBlack/Process Black
  264. *InkName: CustomColor/Custom Color
  265. *InkName: ProcessCyan/Process Cyan
  266. *InkName: ProcessMagenta/Process Magenta
  267. *InkName: ProcessYellow/Process Yellow
  268.  
  269. *% For 60 lpi / 300 dpi =====================================================
  270.  
  271. *ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45"
  272. *ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45"
  273. *ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15"
  274. *ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75"
  275. *ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0"
  276.  
  277. *ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60"
  278. *ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60"
  279. *ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60"
  280. *ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60"
  281. *ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60"
  282.  
  283. *% For 53 lpi / 300 dpi =====================================================
  284.  
  285. *ColorSepScreenAngle ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
  286. *ColorSepScreenAngle CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
  287. *ColorSepScreenAngle ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "71.5651"
  288. *ColorSepScreenAngle ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "18.4349"
  289. *ColorSepScreenAngle ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "0.0"
  290.  
  291. *ColorSepScreenFreq ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
  292. *ColorSepScreenFreq CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
  293. *ColorSepScreenFreq ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
  294. *ColorSepScreenFreq ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
  295. *ColorSepScreenFreq ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "50.0"
  296.  
  297. *% This patch file inserts a delay before manualfeed to fix a bug
  298. *% in the version 23 LaserWriter.
  299. *JobPatchFile 1/ManualFeedDelay: "
  300. save 
  301. /version23-manualfeedpatch where { pop false } { true }ifelse
  302.  % we don't do an explicit 'get' since product and version MAY
  303.  % be in systemdict or statusdict - this technique gets the lookup
  304.  % without failure
  305. statusdict begin
  306.   product (LaserWriter) eq        % true if LaserWriter
  307.   version cvr 23.0 eq             % true if version 23
  308. end
  309.  
  310. and  % only install this patch if both are true
  311. and  % true only if patch is not installed and is for this printer
  312.      % save object and boolean on stack
  313. dup { exch restore }if
  314. % either true OR saveobject false
  315. dup
  316. {
  317.   /version23-manualfeedpatch true def
  318.   /oldversion23-showpage /showpage load def
  319.   /showpage       % this showpage will wait extra time if manualfeed is true
  320.   {%
  321.      statusdict /manualfeed known
  322.      {% manualfeed known in statusdict
  323.         statusdict /manualfeed get
  324.         {% if true then we loop for 5 seconds
  325.            usertime 5000 add       % target usertime
  326.            { % loop
  327.              dup usertime sub 0 lt
  328.              { exit }if
  329.            }loop
  330.            pop             % pop the usertime off the stac
  331.         }if
  332.      }if
  333.      oldversion23-showpage
  334.   }bind def
  335. }if
  336. not{ restore }if
  337. "
  338. *End
  339.  
  340. *% For "LaserWriter" version 23.0
  341. *% Produced by "GETapd.ps" version 2.0 edit 45
  342. *% Converted to meet 4.0 specification
  343. *% Last Edit Date: May 21 1993
  344. *% The byte count of this file should be exactly 011311 or 011657
  345. *% depending on the filesystem it resides in.
  346. *% end of PPD file for LaserWriter
  347.